import { SetMetadata } from '@nestjs/common';
import { constant_Index_IsPublic } from '../constants';

/**
 * @description
 * 自定义装饰器，用于标记控制器或路由方法是否跳过 JWT 验证。
 * 使用此装饰器可以标记某个控制器或路由方法为公共的，跳过 JWT 验证。
 * @example
 * // 在控制器或方法上使用该装饰器，使其不进行 JWT 验证
 * @Decorator_Public_Base()
 * @Get('public-route')
 * getPublicData() {
 *   return 'This route does not require JWT validation';
 * }
 * @returns {ReturnType<typeof SetMetadata>} - 返回应用的装饰器。
 */
export function Decorator_Public_Base(): ReturnType<typeof SetMetadata> {
  return SetMetadata(constant_Index_IsPublic, true);
}
